声明 模块 "https" {
    导入 * 转为 tls 来自 "tls";

    //@@{ 事件组:events }
    导入 * 转为 事件组 来自 "events";
    导入 * 转为 http 来自 "http";
    导入 { URL } 来自 "url";

    //@@{ 服务器选项_:ServerOptions, 安全上下文选项_:SecureContextOptions, Tls选项_:TlsOptions }
    类型 服务器选项_ = tls.安全上下文选项_ & tls.Tls选项_ & http.服务器选项_;

    //@@{ 请求选项_:RequestOptions, 安全上下文选项_:SecureContextOptions }
    类型 请求选项_ = http.请求选项_ & tls.安全上下文选项_ & {

        //@@{ 拒绝未授权:rejectUnauthorized }
        拒绝未授权?: 真假; // Defaults to true

        //@@{ 服务器名称:servername }
        服务器名称?: 文字; // SNI TLS Extension
    };

    //@@{ 代理选项_:AgentOptions, 连接选项_:ConnectionOptions }
    接口 代理选项_ 扩展 http.代理选项_, tls.连接选项_ {

        //@@{ 拒绝未授权:rejectUnauthorized }
        拒绝未授权?: 真假;

        //@@{ 最大缓存会话:maxCachedSessions }
        最大缓存会话?: 数字;
    }

    //@@{ 代理_:Agent }
    类别 代理_ 扩展 http.代理_ {

        //@@{ 代理选项_:AgentOptions }
        构造(选项组?: 代理选项_);

        //@@{ 选项组:options, 代理选项_:AgentOptions }
        选项组: 代理选项_;
    }

    //@@{ 服务器_:Server }
    类别 服务器_ 扩展 tls.服务器_ {

        //@@{ 请求监听器_:RequestListener }
        构造(请求监听器?: http.请求监听器_);

        //@@{ 服务器选项_:ServerOptions, 请求监听器_:RequestListener }
        构造(选项组: 服务器选项_, 请求监听器?: http.请求监听器_);

        //@@{ 设置超时:setTimeout }
        设置超时(回调: () => 无值): 本体;

        //@@{ 设置超时:setTimeout }
        设置超时(毫秒断开?: 数字, 回调?: () => 无值): 本体;
        /**
         * Limits maximum incoming headers count. If set to 0, no limit will be applied.
         * @default 2000
         * {@link https://nodejs.org/api/http.html#http_server_maxheaderscount}
         */

        //@@{ 最大头数量:maxHeadersCount }
        最大头数量: 数字 | 空值;

        //@@{ 超时:timeout }
        超时: 数字;
        /**
         * Limit the amount of time the parser will wait to receive the complete HTTP headers.
         * @default 40000
         * {@link https://nodejs.org/api/http.html#http_server_headerstimeout}
         */

        //@@{ 报头超时:headersTimeout }
        报头超时: 数字;

        //@@{ 保持超时:keepAliveTimeout }
        保持超时: 数字;
    }

    //@@{ 创建服务器:createServer, 请求监听器_:RequestListener, 服务器_:Server }
    函数 创建服务器(请求监听器?: http.请求监听器_): 服务器_;

    //@@{ 创建服务器:createServer, 服务器选项_:ServerOptions, 请求监听器_:RequestListener }
    //@@{ 服务器_:Server }
    函数 创建服务器(选项组: 服务器选项_, 请求监听器?: http.请求监听器_): 服务器_;

    //@@{ 请求:request, 请求选项_:RequestOptions, 传入消息_:IncomingMessage, 客户端请求_:ClientRequest }
    函数 请求(选项组: 请求选项_ | 文字 | URL, 回调?: (响应: http.传入消息_) => 无值): http.客户端请求_;

    //@@{ 请求:request, 请求选项_:RequestOptions, 传入消息_:IncomingMessage, 客户端请求_:ClientRequest }
    函数 请求(url: 文字 | URL, 选项组: 请求选项_, 回调?: (响应: http.传入消息_) => 无值): http.客户端请求_;

    //@@{ 获取:get, 请求选项_:RequestOptions, 传入消息_:IncomingMessage, 客户端请求_:ClientRequest }
    函数 获取(选项组: 请求选项_ | 文字 | URL, 回调?: (响应: http.传入消息_) => 无值): http.客户端请求_;

    //@@{ 获取:get, 请求选项_:RequestOptions, 传入消息_:IncomingMessage, 客户端请求_:ClientRequest }
    函数 获取(url: 文字 | URL, 选项组: 请求选项_, 回调?: (响应: http.传入消息_) => 无值): http.客户端请求_;

    //@@{ 全局代理:globalAgent, 代理_:Agent }
    变量 全局代理: 代理_;
}
